#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
群组模型
定义微信群聊相关的数据库表结构
"""

from sqlalchemy import Column, String, Boolean, Integer, Text
from .base import BaseModel, db

class Group(BaseModel):
    """
    微信群组模型
    存储微信群聊信息
    """
    __tablename__ = 'groups'
    
    # 所属账号
    account = Column(String(100), nullable=False, comment='所属账号，逻辑外键关联belong表的id列')
    
    # 群聊名称
    group_name = Column(String(100), nullable=False, comment='群聊名称')
    
    # 群聊ID（唯一标识）
    group_id = Column(String(100), unique=True, nullable=True, comment='群聊ID')
    
    # 群主微信名
    owner_name = Column(String(100), nullable=True, comment='群主微信名')
    
    # 群成员数量
    member_count = Column(Integer, default=0, nullable=False, comment='群成员数量')
    
    # 群公告
    announcement = Column(Text, nullable=True, comment='群公告')
    
    # 是否启用自动回复
    auto_reply_enabled = Column(Boolean, default=True, nullable=False, comment='是否启用自动回复')
    
    # 是否只回复@消息
    reply_at_only = Column(Boolean, default=True, nullable=False, comment='是否只回复@消息')
    
    # 自定义自动回复消息
    custom_reply_message = Column(Text, nullable=True, comment='自定义自动回复消息')
    
    # 是否启用新成员欢迎
    welcome_enabled = Column(Boolean, default=False, nullable=False, comment='是否启用新成员欢迎')
    
    # 欢迎消息模板
    welcome_message_template = Column(Text, nullable=True, comment='欢迎消息模板')
    
    # 是否启用新闻推送
    news_push_enabled = Column(Boolean, default=False, nullable=False, comment='是否启用新闻推送')
    
    # 新闻推送时间
    news_push_time = Column(String(10), nullable=True, comment='新闻推送时间(HH:MM格式)')
    
    # 是否活跃群聊
    is_active = Column(Boolean, default=True, nullable=False, comment='是否活跃群聊')
    
    # 群聊描述
    description = Column(Text, nullable=True, comment='群聊描述')
    
    def __repr__(self):
        return f'<Group(id={self.id}, group_name="{self.group_name}", member_count={self.member_count})>'